// var i;
// var $resKeeper = require("./ResKeeper");
// var $bundleConfig = require("./BundleConfig");
// var $gameGlobalVariable = require("./GameGlobalVariable");
// var u = cc._decorator;
// var d = u.ccclass;
// var p = u.property;
// var h =
//     (u.inspector,
//     (function (e) {
//         function t() {
//             var t = (null !== e && e.apply(this, arguments)) || this;
//             t.node_bgNode = null;
//             t._isShow = !1;
//             return t;
//         }
//         __extends(t, e);
//         Object.defineProperty(t.prototype, "cellData", {
//             get: function () {
//                 return this._cellData;
//             },
//             enumerable: !1,
//             configurable: !0
//         });
//         t.prototype.onLoad = function () {
//             var e = this;
//             this._loadRes(
//                 $bundleConfig.BundleNames.Game,
//                 "res/bg/" + $gameGlobalVariable.GameGlobalVariable.getSceneId(),
//                 cc.SpriteFrame
//             ).then(function (t) {
//                 e.node_bgNode.getComponent(cc.Sprite).spriteFrame = t;
//             });
//         };
//         t.prototype.StartSet = function (e, t) {
//             this.SetCellData(e);
//             this.SetBgNodeShow(t);
//             this.equipComp = null;
//         };
//         t.prototype.SetCellData = function (e) {
//             this._cellData = e;
//         };
//         t.prototype.SetBgNodeColor = function (e) {
//             this.node_bgNode.color = e;
//         };
//         t.prototype.DragEndLockThis = function (e) {
//             this.equipComp = e;
//         };
//         t.prototype.SetBgNodeShow = function (e) {
//             this.node_bgNode.active = e;
//             this._isShow = e;
//             this.node_bgNode.opacity = 255;
//         };
//         t.prototype.TempShow = function (e) {
//             if (!this._isShow) {
//                 this.node_bgNode.opacity = e ? 100 : 255;
//                 this.node_bgNode.active = e;
//             }
//         };
//         __decorate([p(cc.Node)], t.prototype, "node_bgNode", void 0);
//         return __decorate([d], t);
//     })($resKeeper.default));
// exports.default = h;

import ResKeeper from "./ResKeeper";
import { BundleNames } from "./BundleConfig";
import { GameGlobalVariable } from "./GameGlobalVariable";

const { ccclass, property } = cc._decorator;

/**
 * 建议类名: BackgroundNodeHandler
 */
@ccclass
class ItemGameBagCell extends ResKeeper {
    @property(cc.Node)
    public node_bgNode: cc.Node = null;

    private _isShow: boolean = false;
    private _cellData: any;
    public equipComp: any;

    /**
     * 获取单元格数据
     * @returns 返回单元格数据
     * 建议方法名: getCellData
     */
    get cellData(): any {
        return this._cellData;
    }

    /**
     * 加载背景资源并设置到节点上
     * 建议方法名: loadBackgroundResource
     */
    onLoad(): void {
        this._loadRes(
            BundleNames.Game,
            `res/bg/${GameGlobalVariable.getSceneId()}`,
            cc.SpriteFrame
        ).then((spriteFrame: cc.SpriteFrame) => {
            this.node_bgNode.getComponent(cc.Sprite).spriteFrame = spriteFrame;
        });
    }

    /**
     * 初始化设置
     * @param cellData 单元格数据
     * @param isShow 是否显示背景节点
     * 建议方法名: initializeSettings
     */
    initializeSettings(cellData: any, isShow: boolean): void {
        this.updateCellData(cellData);
        this.updateBgNodeVisibility(isShow);
        this.equipComp = null;
    }

    /**
     * 设置单元格数据
     * @param cellData 单元格数据
     * 建议方法名: updateCellData
     */
    updateCellData(cellData: any): void {
        this._cellData = cellData;
    }

    /**
     * 设置背景节点颜色
     * @param color 颜色
     * 建议方法名: updateBgNodeColor
     */
    updateBgNodeColor(color: cc.Color): void {
        this.node_bgNode.color = color;
    }

    /**
     * 结束拖拽并锁定当前组件
     * @param equipComponent 组件
     * 建议方法名: lockCurrentComponent
     */
    dragEndLockThis(equipComponent: any): void {
        this.equipComp = equipComponent;
    }

    /**
     * 设置背景节点显示状态
     * @param isShow 是否显示
     * 建议方法名: updateBgNodeVisibility
     */
    updateBgNodeVisibility(isShow: boolean): void {
        this.node_bgNode.active = isShow;
        this._isShow = isShow;
        this.node_bgNode.opacity = 255;
    }

    /**
     * 临时显示背景节点
     * @param isShow 是否显示
     * 建议方法名: temporaryShowBgNode
     */
    temporaryShowBgNode(isShow: boolean): void {
        if (!this._isShow) {
            this.node_bgNode.opacity = isShow ? 100 : 255;
            this.node_bgNode.active = isShow;
        }
    }
}

export default ItemGameBagCell;